home *** CD-ROM | disk | FTP | other *** search
/ 9-Digit Zip Code Directory / 9-Digit Zip Code Directory (American Business Information) (ABIZIP-12).ISO / z4src.zip / MALLOC.H < prev    next >
C/C++ Source or Header  |  1993-11-23  |  4KB  |  156 lines

  1. /***
  2. *malloc.h - declarations and definitions for memory allocation functions
  3. *
  4. *   Copyright (c) 1985-1992, Microsoft Corporation.  All rights reserved.
  5. *
  6. *Purpose:
  7. *   Contains the function declarations for memory allocation functions;
  8. *   also defines manifest constants and types used by the heap routines.
  9. *   [System V]
  10. *
  11. ****/
  12.  
  13. #ifndef _INC_MALLOC
  14.  
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif 
  18.  
  19. #if (_MSC_VER <= 600)
  20. #define __based     _based
  21. #define __cdecl     _cdecl
  22. #define __far       _far
  23. #define __huge      _huge
  24. #define __near      _near
  25. #define __segment   _segment
  26. #endif 
  27.  
  28. /* constants for based heap routines */
  29.  
  30. #define _NULLSEG    ((__segment)0)
  31. #define _NULLOFF    ((void __based(void) *)0xffff)
  32.  
  33. /* constants for _heapchk/_heapset/_heapwalk routines */
  34.  
  35. #define _HEAPEMPTY  (-1)
  36. #define _HEAPOK     (-2)
  37. #define _HEAPBADBEGIN   (-3)
  38. #define _HEAPBADNODE    (-4)
  39. #define _HEAPEND    (-5)
  40. #define _HEAPBADPTR (-6)
  41. #define _FREEENTRY  0
  42. #define _USEDENTRY  1
  43.  
  44. /* maximum heap request that can ever be honored */
  45.  
  46. #ifdef _WINDOWS
  47. #define _HEAP_MAXREQ    0xFFE6
  48. #else 
  49. #define _HEAP_MAXREQ    0xFFE8
  50. #endif 
  51.  
  52. /* types and structures */
  53.  
  54. #ifndef _SIZE_T_DEFINED
  55. typedef unsigned int size_t;
  56. #define _SIZE_T_DEFINED
  57. #endif 
  58.  
  59. #ifndef _HEAPINFO_DEFINED
  60. typedef struct _heapinfo {
  61.     int __far * _pentry;
  62.     size_t _size;
  63.     int _useflag;
  64.     } _HEAPINFO;
  65. #define _HEAPINFO_DEFINED
  66. #endif 
  67.  
  68.  
  69. /* external variable declarations */
  70.  
  71. extern unsigned int __near __cdecl _amblksiz;
  72.  
  73.  
  74. /* based heap function prototypes */
  75.  
  76. void __based(void) * __cdecl _bcalloc(__segment, size_t, size_t);
  77. void __based(void) * __cdecl _bexpand(__segment,
  78.     void __based(void) *, size_t);
  79. void __cdecl _bfree(__segment, void __based(void) *);
  80. int __cdecl _bfreeseg(__segment);
  81. int __cdecl _bheapadd(__segment, void __based(void) *, size_t);
  82. int __cdecl _bheapchk(__segment);
  83. int __cdecl _bheapmin(__segment);
  84. __segment __cdecl _bheapseg(size_t);
  85. int __cdecl _bheapset(__segment, unsigned int);
  86. int __cdecl _bheapwalk(__segment, _HEAPINFO *);
  87. void __based(void) * __cdecl _bmalloc(__segment, size_t);
  88. size_t __cdecl _bmsize(__segment, void __based(void) *);
  89. void __based(void) * __cdecl _brealloc(__segment,
  90.     void __based(void) *, size_t);
  91.  
  92.  
  93. /* function prototypes */
  94.  
  95. void * __cdecl _alloca(size_t);
  96. void * __cdecl calloc(size_t, size_t);
  97. void * __cdecl _expand(void *, size_t);
  98. void __far * __cdecl _fcalloc(size_t, size_t);
  99. void __far * __cdecl _fexpand(void __far *, size_t);
  100. void __cdecl _ffree(void __far *);
  101. int __cdecl _fheapchk(void);
  102. int __cdecl _fheapmin(void);
  103. int __cdecl _fheapset(unsigned int);
  104. int __cdecl _fheapwalk(_HEAPINFO *);
  105. void __far * __cdecl _fmalloc(size_t);
  106. size_t __cdecl _fmsize(void __far *);
  107. void __far * __cdecl _frealloc(void __far *, size_t);
  108. unsigned int __cdecl _freect(size_t);
  109. void __cdecl free(void *);
  110. void __huge * __cdecl _halloc(long, size_t);
  111. void __cdecl _hfree(void __huge *);
  112. #ifndef _WINDOWS
  113. int __cdecl _heapadd(void __far *, size_t);
  114. int __cdecl _heapchk(void);
  115. #endif 
  116. int __cdecl _heapmin(void);
  117. #ifndef _WINDOWS
  118. int __cdecl _heapset(unsigned int);
  119. int __cdecl _heapwalk(_HEAPINFO *);
  120. #endif 
  121. void * __cdecl malloc(size_t);
  122. size_t __cdecl _memavl(void);
  123. size_t __cdecl _memmax(void);
  124. size_t __cdecl _msize(void *);
  125. void __near * __cdecl _ncalloc(size_t, size_t);
  126. void __near * __cdecl _nexpand(void __near *, size_t);
  127. void __cdecl _nfree(void __near *);
  128. #ifndef _WINDOWS
  129. int __cdecl _nheapchk(void);
  130. #endif 
  131. int __cdecl _nheapmin(void);
  132. #ifndef _WINDOWS
  133. int __cdecl _nheapset(unsigned int);
  134. int __cdecl _nheapwalk(_HEAPINFO *);
  135. #endif 
  136. void __near * __cdecl _nmalloc(size_t);
  137. size_t __cdecl _nmsize(void __near *);
  138. void __near * __cdecl _nrealloc(void __near *, size_t);
  139. void * __cdecl realloc(void *, size_t);
  140. size_t __cdecl _stackavail(void);
  141.  
  142. #ifndef __STDC__
  143. /* Non-ANSI names for compatibility */
  144. void * __cdecl alloca(size_t);
  145. void __huge * __cdecl halloc(long, size_t);
  146. void __cdecl hfree(void __huge *);
  147. size_t __cdecl stackavail(void);
  148. #endif 
  149.  
  150. #ifdef __cplusplus
  151. }
  152. #endif 
  153.  
  154. #define _INC_MALLOC
  155. #endif 
  156.